Many enterprises expect to use the Internet to reach far-flung agents and customers. The Internet is a public network of computer networks, each with one or more nodes. The Internet uses open, standard protocols for addressing nodes and passing information from one node to another. A user accesses the Internet by logging onto one of the computers on the network, often owned and operated by an Internet Service Provider (ISP). Typically a user establishes a severable link between the user's own computer and the ISP computer. A client application program (a client) running on the user's computer interacts with a server application program (a server) running on one of the nodes on the Internet.
The World Wide Web (the Web) is a collection of resources available over the Internet that are provided by various servers and that can be accessed by a particular client called a Web browser using a hyper-text transfer protocol (HTTP). Using a Web browser, a user can select a resource on the Web, identified by its Universal Resource Locator (URL) name, and have that resource presented to the user. The resource usually includes textual information and often includes graphical, video and audio elements.
For electronic commerce using the Web, the resource provided by the server must include a mechanism for accepting user information. For example, many Web resources include forms for accepting product orders. The browser and resource must also provide for secure information transfer between client and server. For example, secure transfers are needed to receive user credit card information or to send user account information. Effective transactions may also require the resource to provide access to a database. For example, a database enables the server to track inventory of products available for purchase, or to find the account information requested by the client.
One or more programmers are required to produce a resource that interacts with a user's browser to (1) present information, (2) receive input, (3) make secure transactions, and (4) access a database. The presentation of textual, graphical and audio information requires a programmer skilled in the use of a markup language such as the Hyper-Text Markup Language (HTML) or the more flexible Extensible Markup Language (XML). To receive user input in response to the presented information requires a programmer able to create scripts of procedures accessed via Common Gateway Interface (CGI), or applications written in a language like JAVA that can be launched from a user's Web browser. To include information in the resource that is retrieved from a database, either initially or in response to the user input, requires a database programmer as well.
Thus an enterprise that expects to generate a presence on the Internet is faced with the need to assemble a team of expert programmers to implement the design for the enterprise's web site.
Even formulating the design for the series of Web pages that the user will encounter at the enterprise's site requires experience in the type of transactions the web site will perform. For example, a retailer must provide for a shopping cart or analogous component to store information about the items and quantities being purchased. A retailer must also provide for charging to a user's credit card, often by communicating with a third party, or must provide some analogous payment mechanism. These interactions must be designed in a sequence that does not unnecessarily burden or confuse the purchaser. A public service organization must help the user find the information or service sought as efficiently as possible. A sales department must be able to identify its salespersons and provide information tailored to the privileges of the employee accessing the web site.
While a large enterprise has the finances to assemble a team having the requisite expertise, most enterprises are too small to assemble and support such a team. These small to medium sized enterprises need a way to generate an effective presence on the Internet complete with database components without incurring the costs of a team of programmers and experts.
In the context of database components, the complexity of the general purpose database system combined with the complexity of the general purpose operating system with which the database system interacts on a general purpose computer is typically sufficient to require employment of a full-time database administrator (DBA). It is the responsibility of the DBA to grapple with the complexity of the database system, the operating system, and the interactions between them, so that the other database users can take advantage of the database system without being exposed to underlying complexity. Unfortunately, employing a full-time DBA makes ownership of a useful database system an expensive option that may be outside the means of the small to medium sized enterprise.
Maintaining an in house computer system to host the database and web site is also an expensive undertaking even when the enterprise can afford a DBA or small team of information services (IS) professionals. Most computer equipment requires special air-conditioning and power supplies that are expensive to construct in a facility. The equipment itself is expensive and prone to become obsolete as new hardware devices are developed. Even if the equipment is leased, the facility costs remain, and the transfer to upgraded equipment may put a database out of service and consume considerable amounts of skilled IS labor.
Based on the foregoing, it is clearly desirable to provide techniques to reduce the cost of maintaining the hardware and software of the database system and the Internet presence. It is further desirable to decrease the complexity of computer systems, and to provide management techniques that allow companies to reduce the size and cost of their in-house IS departments.